pikminfanonfandomcom-20200214-history
Pikcanon-NOT:Bots
For a list of bots in Pikmin Fanon and their status and tasks, see Pikcanon-NOT:Bots/List. A bot is a computer program that automates certain tasks, which in this case is editing this wiki. Unlike bots that perform tasks video games, bots here are allowed and encouraged. However, given that there is a potential for bots to malfunction or vandalize, the community must carefully regulate their operation to prevent them from damaging the wiki. There are many tasks that bots can perform more efficiently and with less work than humans. Examples include correcting spelling of words and tagging pages with maintenance templates. However, human editors will always be needed, as bots aren't capable of adding content to the wiki. They are just a tool for performing repetitive tasks with less work involved. Community members that are interested in creating a wiki bot should read creating a bot on Wikipedia, as it provides useful background information that applies here. Process The process of creating a bot should usually begin with an idea for a bot being discussed by the community. These discussions should be held on the forums, as they are fit for discussion of this nature. If a consensus forms that it would be useful for a bot to perform a specific task, then the prospective bot operator should write a detailed specification that explains how the bot will run. The specification should include: *A detailed description of what the bot will do and what method the bot will use to do it. The latter is important because otherwise, the community may end up waiting and waiting for a bot that will never be able to carry out its intended tasks. *How often the bot will run. All bots will run either continuously, periodically, or one time. If the bot is designed to run periodically, it should be specified how often it runs. *Who will be able to access it. Most often, only the owner will be able to control the bot other than through blocking it, but sometimes it is possible to allow others to access the bot. Access to the bot will almost never be open to everyone, since again there is a potential for abuse of its features. *Any other information the community would be interested in when evaluating the proposal. It is important to write the specification before work on the bot is started, because it defines the bot's goals before it's too late to change them. Additionally, the community can be sure that the operator is serious about running the bot. Once the community has approved the specification, work on the bot's actual coding can begin. It should be noted that at this stage, the account the bot will run on should not yet have been created. This avoids the problem of having a bot account sitting around for a bot that never does anything. After the bot is coded, it should go through testing of all its features in a variety of scenarios. This testing should occur on a separate bot account instead of the creator's account. The testing should ensure that the bot has correct behavior once it is fully approved. After the testing phase, the creator should ask the community one last time for its approval and a bot flag. The flag only has the technical effect of hiding the bot's edits from the recent changes page, but to the community it indicates that the bot has been tested and approved. Bureaucrats can flag bots; they will look for a community consensus to flag the bot before doing so. Guidelines All bots must run on separate accounts from their creators, as it is important to distinguish between automatic and manual edits. These accounts should not be created until the bot enters the testing phase, however, because until that point there might not ever be a working bot to use the account. Most of the time, the bot account should have a bot flag so that its edits are hidden from recent changes. Additionally, the bot flag shows that the community has approved the bot, as bureaucrats look for a consensus when flagging bots (and no other users can flag them). The only exception is when the bot is still testing, in which case it may be relevant to have the edits on recent changes in case the bot functions incorrectly. Otherwise, the bot has demonstrated correct behavior and its repeated edits need not be seen by everyone else unless they are overtly interested. Bot flags are reserved for bot accounts, and normal accounts may not have a bot flag, although this probably goes without saying. Per the above section, community consensus behind the bot is required at nearly every stage of the process. There is always the potential for a bot to function incorrectly or do harm to the wiki, and it is important that the community knows bots are running and has some confidence that this operation is correct. If an unapproved bot is caught running, administrators are free to block it as they see fit until there is community approval for it. Source code It is requested, but not required, that bot creators publicly release the source code for the bot, or at least give a copy of said code to a trusted user. The code should be released under an open license such as the GPL. By providing some community member with the source code, the bot can continue operation after its operator has left the wiki, if and when this happens. If the operator has distributed the bot's source code, this should be noted on the bot's user page. If a bot operator does in fact leave and another takes his or her place, a separate bot account should be created, controlled by the new operator. This is to ensure transparency and accountability for the bot's actions. The bot's source code will usually run unmodified by the new operator. If this is the case, the specification and testing phases may be skipped and the new operator need only ask the community for a new bot flag before running the bot, given that the functionality of the bot is already known to the community to be correct. However, if the code is significantly modified to the point where its behavior is not the same, the testing phase of bot development should also be repeated by the new operator.